Electronic communications are becoming increasingly critical to operating in the modern world. More and more, both personal and business relationships depend on rapid, reliable, seamless, and instantaneous communications between numerous parties. The ability to audibly and/or visibly communicate simultaneously with several other parties at multiple locations is no longer viewed as a convenience or a luxury in many industries; it is a vital necessity.
Many electronic communications involve communications between parties using computer terminal workstations or other communication devices. A wide variety of methods can be used for such communications. For communications between users on a single “subnet” (a group of machines in communication with one another under a single router or bridge device), communications can take place using the router or bridge device, a common server, if available, in a peer-to-peer manner, or in any other suitable manner. For communications between users on different, independent subnets, generally the Internet or some other communication medium or network must be used.
Various communication protocols may be used for sending data messages to other users, both in “intra-subnet” communications (communications between users in a single subnet) and “inter-subnet” communications (communications between users on different subnets). One such protocol is called the “transmission control protocol” or “TCP.” TCP allows data communications between machines located on the same or different subnets. One advantage of TCP is that it will guarantee complete and in order delivery of data packets in the data message. Thus, TCP typically is a protocol of choice when delivering lengthy messages from machine to machine, particularly when message “in order” delivery is an important factor.
Not all data messages, however, require the added reliability and “in order” delivery aspects of TCP communications. For example, another communication protocol is called the “user datagram protocol” or “UDP.” UDP allows message delivery in various ways, such as via broadcast to multiple machines; via transmission to a specific machine, either to a specific machine within the same subnet as the machine generating the UDP message or to a specific machine on a different subnet; and the like. While UDP will make its best efforts at data message delivery, this protocol does not guarantee delivery. For example, if a data message is too long for the protocol operating on a given system, the message will simply be dropped and remain undelivered.
UDP messages can be very useful in situations where delivery of every data packet is not critical. For example, UDP often is used to send time data to machines on a given subnet. Delivery of every time data packet to every machine on a subnet is not critical because even if a machine does not receive a given time packet or two, another one will follow shortly, which will allow the machine to resynchronize back onto the correct system time (assuming its time drifted somewhat between received time data packets).
One advantage of use of UDP for data message delivery relates to UDP's ability to broadcast messages to all machines on a subnet. For example, UDP delivery of time data packets as described above can be accomplished via broadcast to all users on the subnet. This type of UDP broadcasting ability, however, is limited to broadcast to users on a single subnet (generally allowing any user to send UDP broadcasts to all users over multiple subnets or an Internet connected system would rapidly clog the subnets or Internet with broadcast message data). Such broadcasting of message data is advantageous because, as users enter and leave a communication group on the subnet, each will receive the broadcasted messages without the need to maintain, update, and edit a data message recipient list. TCP does not support this type of broadcast messaging ability (rather, each TCP message must specify one or more intended recipients).
As noted above, broadcasting across subnet boundaries is not allowed, because such broadcast communications (e.g., to all machines on a communication network) would quickly overwhelm the bandwidth and resources of the communication network. UDP “multicasting,” however, does exist. Multicasting allows UDP message packets to be sent to a plurality of specified recipients, even when one or more of the recipients are located on a different subnet from the message originating subnet. This multicasting system is disadvantageous, however, as compared to broadcast messages because the desired recipients of each message must be indicated in each message data sent. Additionally, for multicasting to work, all routers being used in the communication network for the group communicating must support multicasting. Unfortunately, not all routers support this multicasting feature. Therefore, delivery of any multicasted messages cannot be guaranteed to all intended recipients.
Accordingly, there is a need in the art for reliable systems and methods that enable bridging broadcast message communications across subnet boundaries without unduly clogging the communications network while still providing reliable data communications to all available participants in a communicating group.